在执行git pull时遇到如下错误:
error: cannot lock ref 'xxx': ref xxx is at (一个commitID) but expected
问题原因在git pull的时候,本地的分支与远端对应分支的refs对比发现不同,然后导致报错:可能是有人在操作某个分支的时候,git push失败,用了git push –force,导致远端分支被覆盖,使你本地的refs与远端无法保持一致也可能是有人删除掉这个远端分支又重新新建了一个这个分支
解决办法使用git命令删除相应refs文件(推荐)git update-ref -d refs/将报错信息中的refs分支替换‘refs/’,执行即可
强行git pullgit pull -p
删除有问题的refs可以直接在.git/refs下面根据错误提示删除对应的refs文件,嫌麻烦直接删除整个refs目录也行(没有尝试过)
原文地址:https://blog.csdn.net/qq_15437667/article/details/52479792